草庐IT

mysql - 根据 UserId 检索特定的 GroupId

全部标签

ruby-on-rails - 在 Rails 3.1 中存储模型特定常量的最佳位置?

我在名为user的模型中有一个type字段,它是数据库中的一个int。int的值指定了它的存储类型。示例:0=妈妈1=爸爸2=祖母等等我还有其他几个这样的字段,所以创建关联表有点过分了。不是在模型和Controller逻辑的条件语句中检查那些int值,而是在Rails中有一个地方来存储这些常量。这样我就可以从我的模型和Controller中做到这一点?ifmyuser.type==MOMelsifmyuser.type==GRAND_MOTHER编辑:我最后采用的解决方案:在模型中:#constantsTYPES={:mom=>0,:dad=>1,:grandmother=>2,:gr

ruby-on-rails - Rails 根据两个字段查找或创建

我有一个field模型,我想做这个Venue.find_or_create_by_但我只希望在不存在具有相同名称和日期的场所的情况下创建一个新场所例如=>Venue(id:integer,location:string,showdate:datetime,created_at:datetime,updated_at:datetime)field是唯一的,如果位置和放映日期不在数据库中,则需要创建field 最佳答案 您可以使用_and_将列链接在一​​起。这应该可以解决问题:Venue.find_or_create_by_locat

ruby-on-rails - 我可以为特定资源收集路由吗?

我一直在grep搜索rakeroutes的输出,我突然意识到,一定有人知道检查路由的更好方法。我的routes.rb名称account_groups中有一个资源:resources:account_groups有没有办法告诉rakeroutes只返回与该资源关联的路由? 最佳答案 您可以检查特定Controller的路由:rake路由CONTROLLER=account_groups如@ZiiCEagle的回答所示,现在已弃用,您应该使用railsroutes-caccount_groups

ruby - 排序:在 Ruby 中根据多个条件对数组进行排序

我有一个像这样的多维数组:[[name,age,date,gender][name,age,date,gender][..]]我想知道根据多个条件对该数组进行排序的最佳方法...例如,我将如何根据年龄先然后按姓名排序?我像这样摆弄sort方法:array.sort{|a,b|[a[1],a[0]][b[1],b[0]]}除此之外我并不真正理解这种语法,我没有得到我期望的结果。我应该使用sort方法吗?我应该通过映射数组来单独比较结果吗? 最佳答案 您应该始终使用sort_by进行键控排序。它不仅更具可读性,而且效率也更高。此外,为了

ruby - 根据某些条件在 ruby​​ 中拆分数组

我有一个名为@level1的数组,它的值如下:[[3.1,4],[3.0,7],[2.1,5],[2.0,6],[1.9,3]]我想把它分成两个数组,第一个数组(@arr1)包含直到2.1的值,第二个数组(@arr2)包含其后的值。这样做之后,我将通过执行以下操作对我的第二个数组进行反向排序:@arr2=@arr2.sort_by{|x,_|x}.reverse然后我想将这个数组合并到@arr1。有人可以帮助我如何拆分数组然后将它们合并在一起吗? 最佳答案 试试partition方法@arr1,@arr2=@level1.parti

ruby-on-rails - 如何根据父对象的状态验证嵌套模型对象?

我正在用Rails写一个向导表单;例如一个模型对象的多个输入页面。我的方法的基础是RyanBates的Multistepformrailscast中描述的方法:http://railscasts.com/episodes/217-multistep-forms(如果有人想知道下面某些代码背后的原因)。这里关注的对象是“Participant”,它有一个“Address”我的问题是,当用户试图通过地址输入屏幕时,我只想验证嵌套对象(地址)。目前,这是通过参与者模型上名为“current_step”的属性进行跟踪的所以我有一个参与者:classParticipantself.current

Ruby:根据所需的键将一个散列分成两个

我希望这个问题有一个非常简单的答案。我可以想办法处理无聊、烦人的循环,但我希望有更优雅的解决方案。如果我有以下两个变量:hash={:a=>1,:b=>2,:c=>3,:d=>4}keyset=[:a,:c]如何以最简单的方式得到以下两个哈希值?hash1={:a=>1,:c=>3}hash2={:b=>3,:d=>4}如果这个例子没有让我的目标明确,本质上,我想要的是#delete和#delete_if-#delete返回删除的值,而#delete_if允许我批量删除。我更喜欢一种批量删除的方法,并返回已删除的值-或者类似的东西。谢谢! 最佳答案

ruby - 验证值是否在特定范围内,例如1 <= 值 <=2

我想验证一个数字:value在1或2之内validates:value,:format=>{:with=>/1|2/,:message=>"Selectnumber.."}但是,当value==1时,上面的代码验证失败请确保您的解决方案允许我添加验证消息。 最佳答案 validates:value,:inclusion=>{:in=>[1,2]}参见http://apidock.com/rails/ActiveModel/Validations/HelperMethods/validates_inclusion_of

ruby - 以特定顺序运行 RSpec 任务

我有一堆RSpecRake任务定义了我希望在运行整套测试时按特定顺序运行。我试过这样的:task:run_in_order=>[:one,:two,:three]doputs"Runsuiteoftests"end它运行第一个测试然后停止并且不运行其余任务。因此,如果使用Rake语法,它就不起作用。有没有办法记录RSpecRake任务的任务依赖性? 最佳答案 检查这个http://blog.davidchelimsky.net/2012/01/04/rspec-28-is-released/–orderrandWeaddedan--

ruby-on-rails - 强制 Rake 任务在特定的 Rails 环境中运行

我需要从另一个Rake任务运行一系列Rake任务。前三个任务需要在开发环境中运行,但最后一个任务需要在登台环境中运行。该任务依赖于:environment,这会导致在任务运行之前加载Rails开发环境。但是,我需要在暂存环境中执行最终任务。在调用rake任务之前传递一个RAILS_ENV=staging标志是不好的,因为此时环境已经加载,所有这一切只会设置标志,而不是加载暂存环境。有没有办法在特定环境中强制执行rake任务? 最佳答案 我以前完成过这种,尽管不是以最优雅的方式:task:preparedosystem("bundle